This invention relates to a file server for storing files accessed by a computer and a method by which the file server reads information ahead out of a disk drive.
File readahead is known as a technology for improving the data transfer rate of a file system. File readahead speeds up a response to a user's file offset request by reading target data out of a low-speed disk drive into a cache memory before a user issues a file offset request and thus eliminating a need to access the disk drive upon reception of the file offset request (refer to JP 01-082239 A).
Also known is a technique of reading ahead, upon reception of a file offset request, a file that is not the requested file. For example, an access controller is known which controls access as follows. A file server 100 reads a head part DH of a multimedia file D to a RAM 34 prior to reception of a data transmission request. When the multimedia file D is to be sent in response to a data transmission request received, in a case where the head part DH of the multimedia file D requested by the data transmission request has already been read to the RAM 34, the head part DH in the RAM 34 is sent out and, concurrently with this transmission operation, the remainder of the multimedia file D requested by the data transmission request is read out of a storage system 42 (refer to JP 2001-256099 A).
This and similar techniques enable a file system to process data read ahead to a cache memory in the case of sequential read where plural files are read in order, thereby eliminating a need to wait for a response from a disk drive and shortening response time.
A readahead method based on access history is also known. In an environment assumed in this method, data read is requested by other computers through a network interface. A storage system stores, in a table, statistical information composed of IDs of computers that have sent data reference requests and access history. When a data read request is issued, the storage system searches the statistical information table for an entry holding the ID of a computer that is the sender of the request, and reads ahead data at a point recorded in the entry (refer to US 2005/0114608 A1).